
/**********************************************************************************\
** 文件名称: cmd.h
** 创建人员: YCG
** 创建日期: 2018-12-22
** 文档描述: 
** 版本代号: V0.1
** 版本说明: 初始版本
\********************************************************************************/
#ifndef __CMD_H_
#define __CMD_H_
#include "main.h"
#define CMD_USE_CACHE

//#define CMD_DEBUG
#ifdef  CMD_DEBUG
#include "uart.h"
#define  CMD_Printf(fmt,...)   Uprintf(fmt,__VA_ARGS__)
#else
#define  CMD_Printf(...)
#endif

void SendCmd(uint8_t pxCmd);
void SendCmdDat(uint8_t pxCmd, uint8_t pxCmdDat) ;
uint8_t GetCmd(uint8_t pxCmd);
uint8_t GetCmdDat(uint8_t pxCmd);

__weak void CmdSendCallBack(void);

#ifdef CMD_USE_CACHE
extern const uint32_t BIT[32];
#endif

#define CMD_NUM       0     //数字信息，数据范围为0-127，最高位无效

#define CMD_SYS_MODE  1   //系统运行模式命令

#define CMD_MOTOR_SPEED 2  //速度控制
#define CMD_MOTOR_CTRL  3  //方向控制

#define CMD_HC_LIMIT 4     //距离阈值设置

#define CMD_LED_MODE  5   //LED模式命令
#define CMD_LED_LIGHT 6   //亮度设置
#define CMD_LED_SPEED 7   //变化速度设置

#define CMD_BEEP_PLAY 8   //蜂鸣器播放

/*****命令数据控制****/
#define CMD_DAT  0x80   //数据的最高位 1：数据  0：指令
#define CMD_DAT_MASK (~CMD_DAT)   //屏蔽CMD_DAT位，获取数据

#define CMD_NO  0     //没有数据
#define CMD_ADD 1     //增加命令
#define CMD_DEC 2     //减小命令

/**电机方向控制**/
#define MOTOR_CTRL_STOP  0
#define MOTOR_CTRL_UP    1 
#define MOTOR_CTRL_DOWN  2
#define MOTOR_CTRL_LEFT  3
#define MOTOR_CTRL_RIGHT 4

#endif

/********************************End of File************************************/
